home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_b / null2.m65 < prev    next >
Text File  |  1995-04-22  |  4KB  |  151 lines

  1. 0100     .OPT NUM 
  2. 0110     .TITLE "Null Device Handler" 7/31/86 
  3. 0120     ;    
  4. 0130     ;    
  5. 0140     ;    
  6. 0150     ;           (C) 1986 by Paul B. Loux 
  7. 0160     ;    
  8. 0170     ;           Permission is granted to 
  9. 0180     ;           distribute on a non-profit 
  10. 0190     ;           basis provided that this 
  11. 0200     ;           header remains. 
  12. 0210     ;    
  13. 0220     ;    
  14. 0230     ;           Null Device handler, installs 
  15. 0240     ;           a device "N:" into the device 
  16. 0250     ;           handler table. The null device 
  17. 0260     ;           is a no-op handler useful for 
  18. 0270     ;           for debugging I/O routines. 
  19. 0280     ;           It always returns a status 
  20. 0290     ;           of "1" (no error), and the 
  21. 0300     ;           Accumulator is loaded with 
  22. 0310     ;           $9B (return) to facilitate 
  23. 0320     ;           record I/O through CIO. The 
  24. 0330     ;           handler supports all CIO and 
  25. 0340     ;           XIO command types, and 
  26. 0350     ;           occupies only 82 bytes. It 
  27. 0360     ;           protects itself from RESET. 
  28. 0370     ;    
  29. 0380     ;    
  30. 0390     ;    
  31. 0400     ;           System Equates 
  32. 0410     ;           ______________ 
  33. 0420     ;    
  34. 0430 DOSVEC = $0A 
  35. 0440 DOSINI = $0C 
  36. 0450 SPBYT1 = $CB 
  37. 0460 SPBYT2 = $CC 
  38. 0470 RUNAD = $02E0 
  39. 0480 INITAD = $02E2 
  40. 0490 SAFETY = $02F5 
  41. 0500 MEMLO = $02E7 
  42. 0510 HATABS = $031A 
  43. 0520 COLDSV = $E477 
  44. 0530     ;    
  45. 0540     ;    
  46. 0550     ;           Re-install Code 
  47. 0560     ;           _______________ 
  48. 0570     ;    
  49. 0580     ;           (keep RESET-proof) 
  50. 0590     ;    
  51. 0600     *=  $1EA1 
  52. 0610 START 
  53. 0620     JSR $FFFF 
  54. 0630 SETVEX 
  55. 0640     LDA # <MEMADJ 
  56. 0650     STA MEMLO 
  57. 0660     LDA # >MEMADJ 
  58. 0670     STA MEMLO+1 
  59. 0680     LDA #$FF 
  60. 0690     STA SAFETY 
  61. 0700     ;    
  62. 0710     ;    
  63. 0720     ;           Vector setup  
  64. 0730     ;           ____________  
  65. 0740     ;    
  66. 0750 NSETUP 
  67. 0760     LDA #'N 
  68. 0770     STA TEMP 
  69. 0780     LDX #$00 
  70. 0790 SERCH 
  71. 0800     LDA HATABS,X 
  72. 0810     CMP TEMP 
  73. 0820     BEQ FOUND 
  74. 0830     CMP #$00 
  75. 0840     BEQ FOUND 
  76. 0850     INX  
  77. 0860     INX  
  78. 0870     INX  
  79. 0880     BNE SERCH 
  80. 0890     RTS         ; Error 
  81. 0900 FOUND 
  82. 0910     LDA #'N 
  83. 0920     STA HATABS,X 
  84. 0930     LDA # <NDRIVER 
  85. 0940     STA HATABS+1,X 
  86. 0950     LDA # >NDRIVER+1 
  87. 0960     STA HATABS+2,X 
  88. 0970     RTS  
  89. 0980     ;    
  90. 0990     ;           N: Vector Table 
  91. 1000     ;           _______________ 
  92. 1010     ;    
  93. 1020 NDRIVER 
  94. 1030     .WORD NOPEN-1 ; Open 
  95. 1040     .WORD NCLOS-1 ; Close 
  96. 1050     .WORD NGETC-1 ; Read 
  97. 1060     .WORD NPUTC-1 ; Write 
  98. 1070     .WORD NSTAT-1 ; Status 
  99. 1080     .WORD NSPEC-1 ; Special 
  100. 1090     .BYTE $4C 
  101. 1100     .WORD NINIT ; Init 
  102. 1110     ;    
  103. 1120 NOPEN ;         All no-ops 
  104. 1130 NCLOS 
  105. 1140 NGETC 
  106. 1150 NPUTC 
  107. 1160 NSTAT 
  108. 1170 NSPEC 
  109. 1180 NINIT 
  110. 1190     LDA #$9B    ; EOL 
  111. 1200     LDY #$01    ; Success flag 
  112. 1210     RTS  
  113. 1220     ;    
  114. 1230     ;           Working variables 
  115. 1240     ;           _________________ 
  116. 1250     ;    
  117. 1260 TEMP .BYTE 0 
  118. 1270 INIDOS .WORD 0 
  119. 1280     ;    
  120. 1290     ;    
  121. 1300 MEMADJ = *      ; Re-set Memlo pointer 
  122. 1310     ;    
  123. 1320     ;           Install Code 
  124. 1330     ;           ____________ 
  125. 1340     ;    
  126. 1350 LOAD 
  127. 1360     LDA DOSINI 
  128. 1370     STA START+1 
  129. 1380     STA INIDOS 
  130. 1390     LDA DOSINI+1 
  131. 1400     STA START+2 
  132. 1410     STA INIDOS+1 
  133. 1420     LDA # <START 
  134. 1430     STA DOSINI 
  135. 1440     LDA # >START 
  136. 1450     STA DOSINI+1 
  137. 1460     RTS  
  138. 1470     ;    
  139. 1480     ;           Set Load-n-Go 
  140. 1490     ;           _____________ 
  141. 1500     ;    
  142. 1510     *=  INITAD 
  143. 1520     .WORD LOAD 
  144. 1530     *=  RUNAD 
  145. 1540     .WORD SETVEX 
  146. 1550     ;    
  147. 1560     ;    
  148. 1570     ;           End 
  149. 1580     ;           ___ 
  150. 1590     .END  
  151. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>